makefile
结果大三的OS课程为了完成 lab,终于是必须自己看得懂 makefile 了(之前一直交给AI在写
规则
- target 可以是一个目标文件,也可以是一个可执行文件,还可以是一个标签
- prerequisites 生成该target所依赖的文件
- recipe 该target要执行的命令(任意的shell命令)
如果prerequisites中有一个以上文件比target文件要新(直接比修改时间)的话,recipe所定义的命令就会被执行。规则是简单的,但实际写起来的问题很多。
写法
makefile 的编写并不是那么简单,这里先给一个简单的示例,假设你的项目目录如下
makefile文件一般推荐命名为
Makefile或者makefile,其实Makefile更好,因为大写字母开头的在代码规范里面都是些特别的文件,能和源代码之类的区分开。
对于这个项目,如果手写gcc的话,就可能是g++ -std=c++17 -Wall -Wextra main.cpp utils.cpp -o my_app,写在makefile中就可能是: